package com.atguigu.jxc.dao;

import com.atguigu.jxc.entity.Goods;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @description 商品信息
 */
public interface GoodsDao {

    // 根据用户名称模糊查询用户列表的数量
    Integer getTotal(@Param("codeOrName")String codeOrName,@Param("goodsTypeId") Integer goodsTypeId);

    List<Goods> listInventory(@Param("offSet") Integer offSet,
                      @Param("rows") Integer rows,
                      @Param("codeOrName")String codeOrName,
                      @Param("goodsTypeId")Integer goodsTypeId);

    String getMaxCode();

    List<Goods> list(@Param("offSet") Integer offSet,
              @Param("rows") Integer rows,
              @Param("goodsName")String goodsName,
              @Param("goodsTypeId")Integer goodsTypeId);

    Integer getTotal2(@Param("goodsName") String goodsName, @Param("goodsTypeId") Integer goodsTypeId);

    Goods findSupplierByName(String goodsName);

    Integer addGoods(Goods goods);

    Integer updateGoods(Goods goods);

    Integer delete(@Param("goodsId") Integer goodsId);

    Integer getStateById(Integer goodsId);

    // 无库存商品列表展示
    Integer getTotal3(@Param("nameOrCode")String nameOrCode);

    // 无库存商品列表展示

    List<Goods> getNoInventoryQuantity(@Param("offSet") Integer offSet,
                              @Param("rows") Integer rows,
                              @Param("nameOrCode")String nameOrCode);

    // 有库存商品列表展示
    List<Goods> getHasInventoryQuantity(@Param("offSet") Integer offSet,
                                        @Param("rows") Integer rows,
                                        @Param("nameOrCode") String nameOrCode);

    // 有库存商品列表展示
    Integer getTotal4(@Param("nameOrCode") String nameOrCode);
}
